<?php defined('SYSPATH') or die('No direct script access.');

class Helper_Index
{
    public static function redirect_301($url)
    {
        header('HTTP/1.1 301 Moved Permanently');
        header('Location: '.$url);
        die();
    }
    
    public static function canonical_url()
    {
        $host  = Model_Main::get_host_url();
        $url   = $_SERVER['REQUEST_URI'];    
        $query = parse_url($url, PHP_URL_QUERY);
        $url   = str_replace('?'.$query, '', $url);
        
        if ($_SERVER['REQUEST_URI'] != $url) {
            return '<link rel="canonical" href="'.$host.$url.'" />
'; 
        }
        return '';
    }
    
    public static function products_list($products, $products_data = null, $coupons = null, $shops = null, $sidebar = false, $top_left_block = null, $skip_first_col_products = 6)
    {
        $cols = 4;
        
        $col_products = array(
            array(), array(), array(), array(),
        );
        $n = 1;
        $current_index = 0;
        foreach ($products as $product) {
            if ($current_index == 0 && $top_left_block && $n < $skip_first_col_products*($cols-1)) {
                $current_index++;   
            }
            $col_products[$current_index][] = $product;
            $current_index++;
            if ($current_index == $cols) {
                $current_index = 0;    
            }
            $n++;
        }
        
        $content = new View('index/product/_products_list_tpl');        
        $content->products = $col_products;
        $content->products_data = $products_data; 
        $content->coupons  = $coupons;
        $content->shops    = $shops;
        $content->sidebar  = $sidebar;
        $content->top_left_block = $top_left_block; 
        return $content;        
    }
    
    public static function sidebar_products_list($products, $products_data = null, $coupons = null, $shops = null)
    {
        return self::products_list($products, $products_data, $coupons, $shops, true);
    }
    
    public static function coupons_list($coupons, $shops)
    {
        $content = new View('index/coupon/_coupons_list_tpl');
        $content->coupons  = $coupons;
        $content->shops    = $shops;
        return $content;        
    }
    
    public static function brand_letters($letters, $letter = null, $show_all = true)
    {
        $content = new View('index/brand/_letters_tpl');
        $content->letters  = $letters;
        $content->letter   = $letter;
        $content->show_all = $show_all;
        return $content;        
    }
    
    public static function sidebar($categories, $brands, $colors, $compositions, $seasons, $prices, $shops, $filters, $category, $brand, $color, $composition, $season)
    {
        $content = new View('index/catalog/_sidebar_tpl');
        $content->categories = $categories;
        $content->brands     = $brands;
        $content->colors     = $colors;
        $content->compositions = $compositions;
        $content->seasons    = $seasons;
        $content->prices     = $prices;
        $content->shops      = $shops;
        
        $content->filters    = $filters;
        $content->category   = $category;
        $content->brand      = $brand;
        $content->color      = $color; 
        $content->composition = $composition; 
        $content->season     = $season; 
        
        return $content;      
    }
    
    public static function search_sidebar($categories)
    {
        $content = new View('index/index/_search_sidebar_tpl');
        $content->categories = $categories;
        return $content;     
    }
    
    public static function coupon_shop_url($shop) {
        if (is_array($shop)) {
            $url = '/coupon/'.$shop['url'];    
        } else {
            $url = '/coupon/'.$shop->url;   
        }
        return $url;
    }
    
    public static function shops_list($shops)
    {
        $content = new View('index/shop/_shops_list_tpl');
        $content->shops    = $shops;
        return $content;        
    }
    
    public static function go_shop_url($shop)
    {
        return '/shop/go/'.$shop->id;    
    }
    
    public static function shop_url($shop)
    {
        if (is_array($shop)) {
            $url = '/shop/'.$shop['url'];    
        } else {
            $url = '/shop/'.$shop->url;   
        }
        return $url;
    }
    
    public static function go_product_url($product) {
        return '/product/go/'.$product->id;
    }
    
    public static function go_coupon_url($coupon, $product = null) {
        if ($product) {
            return '/coupon/go/'.$coupon->id.'/'.$product->id;
        }
        return '/coupon/go/'.$coupon->id;
    }
    
    public static function product_url($product) {
        return '/product/'.$product->id.'-'.Model_Main::translit($product->name);
    }
    
    public static function catalog_url($category = null, $brand = null, $color = null, $composition = null, $season = null, $append_query = false) {
        $url = '/catalog';
        if ($category) {
            if ($category instanceof Model_Category) {
                $url .= '/category/'.$category->url; 
            } else {
                $url .= '/category/'.$category['url'];   
            }
        }
        if ($brand) {
            if ($brand instanceof Model_Brand) {
                $url .= '/brand/'.$brand->url;    
            } else {
                $url .= '/brand/'.$brand['url'];    
            }
               
        }
        if ($color) {
            $url .= '/color/'.$color['url'];   
        }
        if ($composition) {
            $url .= '/composition/'.$composition['url'];    
        }
        if ($season) {
            $url .= '/season/'.$season['url'];    
        }
        if ($append_query && $_SERVER['QUERY_STRING']) {
            $url .= '?'.$_SERVER['QUERY_STRING'];    
        }
        return $url;
    }
    
    public static function search_url($query)
    {
        return '/search/'.str_replace(' ', '%20', $query);
    }
    
    public static function describe_discount_price($price)
    {
        $items = array(
            'discount' => 'Скидка в магазине',
            'coupon'   => 'Промокод',
            'cashback' => 'Кэшбэк',
        );
        
        $result = '';
        if (isset($price['history']) && count($price['history'])) {
            $result = '<div class="price-history-block">'; 
            $result .= '<strong>Откуда взялась скидка:</strong><br />';
            foreach ($price['history'] as $type => $percentage) {
                if (isset($items[$type])) {
                    $result .= '<span>'.$items[$type].': '.$percentage.'%</span><br />'; 
                }   
            } 
            $result .= '<span>Итоговая скидка: '.$price['percentage'].'%</span><br />';  
            $result .= '</div>';
        }
        return $result;
    }
    
    public static function recommend_url($url = null)
    {
        $user = Model_Auth::instance()->get_user();
        if (!$user) {
            return null;
        }
        $host   = Model_Main::get_host_url();
        
        if (!$url) {
            $url = $_SERVER['REQUEST_URI'];    
        }
        $query  = parse_url($url, PHP_URL_QUERY);
        $url    = str_replace('?'.$query, '', $url);
        parse_str($query, $params);
        $params['utm_source'] = 'recommend';
        $params['utm_medium'] = 'referral';
        $params['utm_campaign'] = $user->id;
        
        return $host.$url.'?'.http_build_query($params);
    }
    
    public static function recommend_social_buttons()
    {
        $user = Model_Auth::instance()->get_user();
        
        $code = '<hr /><p>';
        if ($user) {
            $code .= '<noindex><h4>Заработайте на рекомендациях наших товаров. Поделитесь этой страничкой с друзьями и вы сможете получить вознаграждение!</h4></noindex>';
            $code .= Helper_Index::social_buttons(Helper_Index::recommend_url()).'<br />';
        } else {
            $code .= '<noindex><h4>Понравилась страничка? Поделитесь ею с друзьями!</h4></noindex>'; // А также вы можете <span class="hlink" data-hlink="'.base64_encode('/info/partner').'">зарабатывать с нами</span>.</h4>';
            $code .= Helper_Index::social_buttons(Helper_Index::recommend_url());    
        }
        $code .= '</p><hr />';    
        return $code;    
    }
    
    public static function show_recommend_url()
    {
        $url = Helper_Index::recommend_url();
        
        $code = '';
        if ($url) {
            $code = '<noindex><p>Ваша партнерская ссылка - <strong>'.$url.'</strong></p><hr /></noindex>';
        }
        return $code; 
    }
    
    public static function category_name_nominative_form($category = null, $brand = null, $color = null, $composition = null, $season = null)
    {
        $name = 'товары';
        if ($category) {
            $name = $category->nominative_form;   
        }
        if ($brand) {
            if ($brand instanceof Model_Brand) {
                $name .= ' '.$brand->name;    
            } else {
                $name .= ' '.$brand['name'];    
            }    
        }
        if ($composition) {
            if ($category && $category->is_plural_form) {
                if (isset($composition['plural_form'])) {
                    $name = $composition['plural_form'].' '.$name;   
                } else {
                    $name .= ' '.$composition['single_form'];    
                }
            } else {
                $name .= ' '.$composition['single_form'];
            }
        }
        if ($season) {
            if ($category && $category->is_plural_form) {
                $name = $season['plural_form'].' '.$name;
            } else {
                $name .= ' '.$season['single_form'];
            }
        }
        if ($color) {
            if ($category && $category->is_plural_form) {
                $name = $color['plural_form'].' '.$name;
            } else {
                $name .= ' '.$color['single_form'];
            }
        } 
        
        return $name;       
    }
    
    public static function category_name_accusative_form($category = null, $brand = null, $color = null, $composition = null, $season = null)
    {
        $name = 'товары';
        if ($category) {
            $name = $category->accusative_form;   
        }
        if ($brand) {
            if ($brand instanceof Model_Brand) {
                $name .= ' '.$brand->name;    
            } else {
                $name .= ' '.$brand['name'];    
            }    
        }
        if ($composition) {
            if ($category && $category->is_plural_form) {
                if (isset($composition['plural_form'])) {
                    $name = $composition['plural_form'].' '.$name;   
                } else {
                    $name .= ' '.$composition['single_form'];    
                }
            } else {
                $name .= ' '.$composition['single_form'];
            }
        }
        if ($season) {
            if ($category && $category->is_plural_form) {
                $name = $season['plural_form'].' '.$name;
            } else {
                $name .= ' '.$season['single_form'];
            }
        }
        if ($color) {
            if ($category && $category->is_plural_form) {
                $name = $color['plural_form'].' '.$name;
            } else {
                $name .= ' '.$color['single_form'];
            }
        } 
        
        return $name;     
    }
    
    public static function category_name_genitive_form($category = null, $brand = null, $color = null, $composition = null, $season = null)
    {
        $name = 'товаров';
        if ($category) {
            $name = $category->genitive_form;   
        }
        if ($brand) {
            if ($brand instanceof Model_Brand) {
                $name .= ' '.$brand->name;    
            } else {
                $name .= ' '.$brand['name'];    
            }    
        }
        if ($composition) {
            if ($category && $category->is_plural_form) {
                if (isset($composition['genitive_form'])) {
                    $name = $composition['genitive_form'].' '.$name;   
                } else {
                    $name .= ' '.$composition['single_form'];    
                }
            } else {
                $name .= ' '.$composition['single_form'];
            }
        }
        if ($season) {
            if ($category && $category->is_plural_form) {
                $name = $season['genitive_form'].' '.$name;
            } else {
                $name .= ' '.$season['single_form'];
            }
        }
        if ($color) {
            if ($category && $category->is_plural_form) {
                $name = $color['genitive_form'].' '.$name;
            } else {
                $name .= ' '.$color['single_form'];
            }
        } 
        
        return $name;     
    }
    
    public static function models_search_list($models)
    {
        $content = new View('index/model/_search_list_tpl');
        $content->models = $models;
        return $content;    
    }
    
    public static function date($date)
    {
        $d = date('d', $date);
        $m = date('m', $date);
        $y = date('Y', $date);
        
        $months = array(
            '01' => 'января',
            '02' => 'февраля',
            '03' => 'марта',
            '04' => 'апреля',
            '05' => 'мая',
            '06' => 'июня',
            '07' => 'июля',
            '08' => 'августа',
            '09' => 'сентября',
            '10' => 'октября',
            '11' => 'ноября',
            '12' => 'декабря',
        );
        
        return $d . ' ' . $months[$m] . ' ' . $y;
    }
    
    public static function social_buttons($url = null)
    {
        // <div class="twitter" data-via="twitter_name" data-related="twitter_related" title="Поделиться ссылкой в Твиттере">Twitter</div>
        $code = '<div class="social-likes"';
        if ($url) {
            $code .= ' data-url="'.$url.'"';
        }
        $code .= '>
    <div class="vkontakte" title="Поделиться ссылкой во Вконтакте">Вконтакте</div>
    <div class="odnoklassniki" title="Поделиться ссылкой в Одноклассниках">Одноклассники</div>
    <div class="mailru" title="Поделиться ссылкой в Моём мире">Мой мир</div>
    <div class="facebook" title="Поделиться ссылкой на Фейсбуке">Facebook</div>
    <div class="plusone" title="Поделиться ссылкой в Гугл-плюсе">Google+</div>
</div>';

        return $code;    
    }
    
    public static function pagination($page, $per_page, $count, $url, $first_url, $sort = null, $params = null)
    {
        if (ceil($count / $per_page) <= 1) {
            return '';
        }
        $content = new View('index/_pagination_tpl');
        $content->page     = $page;
        $content->per_page = $per_page;
        $content->count    = $count;
        $content->url      = $url;
        $content->first_url = $first_url;
        $content->sort     = $sort;
        if ($params) {
            $empty = true;
            foreach ($params as &$param) {
                if (is_null($param)) {
                    $param = '';    
                } else {
                    $empty = false;    
                }   
            }
            if ($empty) {
                $params = null;    
            }
        }
        $content->params   = $params;
        return $content;   
    }
    
    public static function anchor_text($text)
    {
        $n = mt_rand(0, 2);
        if ($n == 0) {
            return $text . ' отзывы';
        } else if ($n == 1) {
            return 'Отзывы о ' . $text;
        }
        return $text;
    } 
    
    public static function top_menu()
    {
        $content = new View('index/_top_menu_tpl');
        $content->categories = ORM::factory('category')->get_categories_tree();
        return $content;   
    }
    
    public static function my_menu($active = '')
    {
        $menu = array(
            ''         => 'Общее и Настройки',
            'clicks'   => 'История кликов',
            'orders'   => 'Покупки',
            'payments' => 'Платежи',
            'partner'  => 'Партнерская программа',
            'support'  => 'Поддержка',
        );
        
        $html = '<div class="sidebar">
<div class="no-padding">
    <span class="title">Меню</span>
</div>
<ul class="nav nav-pills nav-stacked">';
        foreach ($menu as $url => $name) {
            $html .= '<li';
            if ($url == $active) {
                $html .= ' class="active"';     
            }
            $html .= '><a href="/my';
            if ($url) {
                $html .= '/'.$url;    
            }
            $html .= '">'.$name.'</a></li>';        
        }
        $html .= '</ul>
</div>';
        return $html;
    }
    
    public static function info_menu($active = '')
    {
        $menu = array(
            //''         => 'Общее и Настройки',
            'partner'  => 'Партнерская программа',
            'privacy'  => 'Политика конфиденциальности',
            'contacts' => 'Контакты',
        );
        
        $html = '<div class="sidebar">
<div class="no-padding">
    <span class="title">Меню</span>
</div>
<ul class="nav nav-pills nav-stacked">';
        foreach ($menu as $url => $name) {
            $html .= '<li';
            if ($url == $active) {
                $html .= ' class="active"';     
            }
            $html .= '><a href="/info';
            if ($url) {
                $html .= '/'.$url;    
            }
            $html .= '">'.$name.'</a></li>';        
        }
        $html .= '</ul>
</div>';
        return $html;
    }
    
    public static function format_int($value)
    {
        return number_format((int)$value, 0, '', ' ');
    }
    
    public static function cashback_payment_size($shop, $action = null)
    {
        $currencies = array(
            'RUB' => ' руб.',
            'UAH' => ' грн.',
        );
        
        $result = $shop->cashback_payment_size;
        if ($action) {
            $result = $action->cashback_payment_size;    
        } 
        $result = str_replace('.', ',', $result);
        if ($shop->percentage) {
            $result .= '%';    
        } else {
            $currency = isset($currencies[$shop->currency]) ? $currencies[$shop->currency] : $shop->currency;
            $result .= $currency;    
        }
        return $result; 
    }
    
    public static function recommend_payment_size($shop, $with_cashback = false)
    {
        $currencies = array(
            'RUB' => ' руб.',
            'UAH' => ' грн.',
        );
        
        $result = $shop->recommend_payment_size;
        if ($with_cashback) {
            $result = $shop->recommend_payment_size_with_cashback;
        }
        if (!$result) {
            return '-';    
        }
        $result = str_replace('.', ',', $result);
        if ($shop->percentage) {
            $result .= '%';    
        } else {
            $currency = isset($currencies[$shop->currency]) ? $currencies[$shop->currency] : $shop->currency;   
            $result .= $currency;        
        }
        return $result;
    }
    
    /**
    *  Множественное число
    *
    * @param int $howmuch
    * @param array $input Например: [0] - комментарий, [1] - комментария, [2] - комментариев
    * @return string
    */
    public static function plural_form($howmuch, array $input) {
        $howmuch = (int)$howmuch;
        $l2 = substr($howmuch,-2);
        $l1 = substr($howmuch,-1);
        if($l2 > 10 && $l2 < 20) return $input[2];
        else
        switch ($l1) {
            case 0: return $input[2]; break;
            case 1: return $input[0]; break;
            case 2: case 3: case 4: return $input[1]; break;
            default: return $input[2]; break;
        }
        return false;
    }
    
    public static function get_catalog_index_title($category, $brand, $color, $composition, $season, $page = 1)
    {       
        $cat_name = self::category_name_accusative_form($category, $brand, $color, $composition, $season);
        $town     = self::get_town($page);
        
        $pattern = '{'; if ($category && $category->is_plural_form) { $pattern .= '{Качественные|Удобные|Cтильные|Модные|Фирменные|Брендовые|Красивые|Недорогие|Качественные{ и |, }удобные|Качественные{ и |, }стильные|Качественные{ и |, }модные|Качественные{ и |, }фирменные|Качественные{ и |, }брендовые|Качественные{ и |, }красивые|Качественные{ и |, }недорогие|Удобные{ и |, }качественные|Удобные{ и |, }стильные|Удобные{ и |, }модные|Удобные{ и |, }фирменные|Удобные{ и |, }брендовые|Удобные{ и |, }красивые|Удобные{ и |, }недорогие|Cтильные{ и |, }качественные|Cтильные{ и |, }удобные|Cтильные{ и |, }фирменные|Cтильные{ и |, }брендовые|Cтильные{ и |, }красивые|Cтильные{ и |, }недорогие|Модные{ и |, }качественные|Модные{ и |, }удобные|Модные{ и |, }фирменные|Модные{ и |, }брендовые|Модные{ и |, }красивые|Модные{ и |, }недорогие|Фирменные{ и |, }качественные|Фирменные{ и |, }удобные|Фирменные{ и |, }стильные|Фирменные{ и |, }модные|Фирменные{ и |, }красивые|Фирменные{ и |, }недорогие|Брендовые{ и |, }качественные|Брендовые{ и |, }удобные|Брендовые{ и |, }стильные|Брендовые{ и |, }модные|Брендовые{ и |, }красивые|Брендовые{ и |, }недорогие|Красивые{ и |, }качественные|Красивые{ и |, }удобные|Красивые{ и |, }стильные|Красивые{ и |, }модные|Красивые{ и |, }фирменные|Красивые{ и |, }брендовые|Красивые{ и |, }недорогие|Недорогие{ и |, }качественные|Недорогие{ и |, }удобные|Недорогие{ и |, }стильные|Недорогие{ и |, }модные|Недорогие{ и |, }фирменные|Недорогие{ и |, }брендовые|Недорогие{ и |, }красивые} '; } else { $pattern .= 'Купить '; } $pattern .= $cat_name.' {по {низкой|выгодной} цене|со скидкой|недорого|по {низкой|выгодной} цене со скидкой|недорого со скидкой|} {в магазине|на сайте|в интернет-магазине|в интернет магазине} StyleGarderob.com'; if ($town) { $pattern .= ' с доставкой в '.$town['delivery_in']; } $pattern .= '|
        {Заказать|Купить|Приобрести} '; if ($town) { $pattern .= 'в '.$town['shop_in'].' '; } if ($category && $category->is_plural_form) { $pattern .= '{качественные|удобные|cтильные|модные|фирменные|брендовые|красивые|недорогие|качественные{ и |, }удобные|качественные{ и |, }стильные|качественные{ и |, }модные|качественные{ и |, }фирменные|качественные{ и |, }брендовые|качественные{ и |, }красивые|качественные{ и |, }недорогие|удобные{ и |, }качественные|удобные{ и |, }стильные|удобные{ и |, }модные|удобные{ и |, }фирменные|удобные{ и |, }брендовые|удобные{ и |, }красивые|удобные{ и |, }недорогие|cтильные{ и |, }качественные|cтильные{ и |, }удобные|cтильные{ и |, }фирменные|cтильные{ и |, }брендовые|cтильные{ и |, }красивые|cтильные{ и |, }недорогие|модные{ и |, }качественные|модные{ и |, }удобные|модные{ и |, }фирменные|модные{ и |, }брендовые|модные{ и |, }красивые|модные{ и |, }недорогие|фирменные{ и |, }качественные|фирменные{ и |, }удобные|фирменные{ и |, }стильные|фирменные{ и |, }модные|фирменные{ и |, }красивые|фирменные{ и |, }недорогие|брендовые{ и |, }качественные|брендовые{ и |, }удобные|брендовые{ и |, }стильные|брендовые{ и |, }модные|брендовые{ и |, }красивые|брендовые{ и |, }недорогие|красивые{ и |, }качественные|красивые{ и |, }удобные|красивые{ и |, }стильные|красивые{ и |, }модные|красивые{ и |, }фирменные|красивые{ и |, }брендовые|красивые{ и |, }недорогие|недорогие{ и |, }качественные|недорогие{ и |, }удобные|недорогие{ и |, }стильные|недорогие{ и |, }модные|недорогие{ и |, }фирменные|недорогие{ и |, }брендовые|недорогие{ и |, }красивые} '; } $pattern .= $cat_name.' {по {низкой|выгодной} цене|со скидкой|недорого|по {низкой|выгодной} цене со скидкой|недорого со скидкой|} {в магазине|на сайте|в интернет-магазине|в интернет магазине} StyleGarderob.com|
        {Заказать|Купить|Приобрести} '; if ($category && $category->is_plural_form) { $pattern .= '{качественные|удобные|cтильные|модные|фирменные|брендовые|красивые|недорогие|качественные{ и |, }удобные|качественные{ и |, }стильные|качественные{ и |, }модные|качественные{ и |, }фирменные|качественные{ и |, }брендовые|качественные{ и |, }красивые|качественные{ и |, }недорогие|удобные{ и |, }качественные|удобные{ и |, }стильные|удобные{ и |, }модные|удобные{ и |, }фирменные|удобные{ и |, }брендовые|удобные{ и |, }красивые|удобные{ и |, }недорогие|cтильные{ и |, }качественные|cтильные{ и |, }удобные|cтильные{ и |, }фирменные|cтильные{ и |, }брендовые|cтильные{ и |, }красивые|cтильные{ и |, }недорогие|модные{ и |, }качественные|модные{ и |, }удобные|модные{ и |, }фирменные|модные{ и |, }брендовые|модные{ и |, }красивые|модные{ и |, }недорогие|фирменные{ и |, }качественные|фирменные{ и |, }удобные|фирменные{ и |, }стильные|фирменные{ и |, }модные|фирменные{ и |, }красивые|фирменные{ и |, }недорогие|брендовые{ и |, }качественные|брендовые{ и |, }удобные|брендовые{ и |, }стильные|брендовые{ и |, }модные|брендовые{ и |, }красивые|брендовые{ и |, }недорогие|красивые{ и |, }качественные|красивые{ и |, }удобные|красивые{ и |, }стильные|красивые{ и |, }модные|красивые{ и |, }фирменные|красивые{ и |, }брендовые|красивые{ и |, }недорогие|недорогие{ и |, }качественные|недорогие{ и |, }удобные|недорогие{ и |, }стильные|недорогие{ и |, }модные|недорогие{ и |, }фирменные|недорогие{ и |, }брендовые|недорогие{ и |, }красивые} '; } $pattern .= $cat_name.' {по {низкой|выгодной} цене|со скидкой|недорого|по {низкой|выгодной} цене со скидкой|недорого со скидкой|}'; if ($town) { $pattern .= ' в '.$town['shop_in']; } $pattern .=' {в магазине|на сайте|в интернет-магазине|в интернет магазине} StyleGarderob.com}';
        
        $seed    = 1;
        if ($category) {
            $seed += $category->id;
        }
        if ($brand) {
            $seed += $brand->id;    
        }
        if ($color) {
            $seed += $color['id'];    
        }
        if ($composition) {
            $seed += $composition['id'];    
        }
        if ($season) {
            $seed += $season['id'];    
        }
        if ($page) {
            $seed += $page;    
        }
        $text = Model_Main::text_generator($pattern, $seed);
        
        return Model_Main::ucfirst_utf8(trim($text));
    }
    
    public static function get_catalog_index_description($category, $brand, $color, $composition, $season, $page = 1)
    {
        $cat_name_clean = self::category_name_accusative_form($category);
        $cat_name = self::category_name_accusative_form($category, $brand, $color, $composition, $season);
        $cat_name_genitive = self::category_name_genitive_form($category, $brand, $color, $composition, $season);   
        $town     = self::get_town($page);
        
        $pattern = '{Магазин|Сайт|Интернет-магазин|Интернет магазин} StyleGarderob.com {{представляет|предлагает|предоставляет} {большой|огромный|широкий} {ассортимент|выбор} '; if ($category && $category->is_plural_form) { $pattern .= '{качественных{ и |, }удобных|качественных|удобных|cтильных|модных|фирменных|брендовых|красивых|недорогих|качественных{ и |, }стильных|качественных{ и |, }модных|качественных{ и |, }фирменных|качественных{ и |, }брендовых|качественных{ и |, }красивых|качественных{ и |, }недорогих|удобных{ и |, }качественных|удобных{ и |, }стильных|удобных{ и |, }модных|удобных{ и |, }фирменных|удобных{ и |, }брендовых|удобных{ и |, }красивых|удобных{ и |, }недорогих|cтильных{ и |, }качественных|cтильных{ и |, }удобных|cтильных{ и |, }фирменных|cтильных{ и |, }брендовых|cтильных{ и |, }красивых|cтильных{ и |, }недорогих|модных{ и |, }качественных|модных{ и |, }удобных|модных{ и |, }фирменных|модных{ и |, }брендовых|модных{ и |, }красивых|модных{ и |, }недорогих|фирменных{ и |, }качественных|фирменных{ и |, }удобных|фирменных{ и |, }стильных|фирменных{ и |, }модных|фирменных{ и |, }красивых|фирменных{ и |, }недорогих|брендовых{ и |, }качественных|брендовых{ и |, }удобных|брендовых{ и |, }стильных|брендовых{ и |, }модных|брендовых{ и |, }красивых|брендовых{ и |, }недорогих|красивых{ и |, }качественных|красивых{ и |, }удобных|красивых{ и |, }стильных|красивых{ и |, }модных|красивых{ и |, }фирменных|красивых{ и |, }брендовых|красивых{ и |, }недорогих|недорогих{ и |, }качественных|недорогих{ и |, }удобных|недорогих{ и |, }стильных|недорогих{ и |, }модных|недорогих{ и |, }фирменных|недорогих{ и |, }брендовых|недорогих{ и |, }красивых} '; } $pattern .= $cat_name_genitive; if ($town) { $pattern .= ' в '.$town['shop_in']; }
        $pattern .= '|{представляет|предлагает|предоставляет} '; if ($category && $category->is_plural_form) { $pattern .= '{качественные|удобные|cтильные|модные|фирменные|брендовые|красивые|недорогие|качественные{ и |, }удобные|качественные{ и |, }стильные|качественные{ и |, }модные|качественные{ и |, }фирменные|качественные{ и |, }брендовые|качественные{ и |, }красивые|качественные{ и |, }недорогие|удобные{ и |, }качественные|удобные{ и |, }стильные|удобные{ и |, }модные|удобные{ и |, }фирменные|удобные{ и |, }брендовые|удобные{ и |, }красивые|удобные{ и |, }недорогие|cтильные{ и |, }качественные|cтильные{ и |, }удобные|cтильные{ и |, }фирменные|cтильные{ и |, }брендовые|cтильные{ и |, }красивые|cтильные{ и |, }недорогие|модные{ и |, }качественные|модные{ и |, }удобные|модные{ и |, }фирменные|модные{ и |, }брендовые|модные{ и |, }красивые|модные{ и |, }недорогие|фирменные{ и |, }качественные|фирменные{ и |, }удобные|фирменные{ и |, }стильные|фирменные{ и |, }модные|фирменные{ и |, }красивые|фирменные{ и |, }недорогие|брендовые{ и |, }качественные|брендовые{ и |, }удобные|брендовые{ и |, }стильные|брендовые{ и |, }модные|брендовые{ и |, }красивые|брендовые{ и |, }недорогие|красивые{ и |, }качественные|красивые{ и |, }удобные|красивые{ и |, }стильные|красивые{ и |, }модные|красивые{ и |, }фирменные|красивые{ и |, }брендовые|красивые{ и |, }недорогие|недорогие{ и |, }качественные|недорогие{ и |, }удобные|недорогие{ и |, }стильные|недорогие{ и |, }модные|недорогие{ и |, }фирменные|недорогие{ и |, }брендовые|недорогие{ и |, }красивые} '; } $pattern .= $cat_name; if ($town) { $pattern .= ' в '.$town['shop_in']; }
        $pattern .= '}. {У нас|В нашем магазине|В нашем интернет-магазине|Только у нас|Только в нашем магазине|Только в нашем интернет-магазине} {вы {можете|сможете|имеете возможность} {заказать|купить|приобрести} '; if ($category && $category->is_plural_form) { $pattern .= '{качественные|удобные|cтильные|модные|фирменные|брендовые|красивые} '; } $pattern .= $cat_name.'|вас {ждет|ожидает} {большой|огромный|широкий} {ассортимент|выбор} '; if ($category && $category->is_plural_form) { $pattern .= '{удобных|качественных|удобных|cтильных|модных|фирменных|брендовых|красивых} '; } $pattern .= $cat_name_genitive.'} {по {низкой|выгодной} цене|со скидкой|недорого|по {низкой|выгодной} цене со скидкой|недорого со скидкой}. {StyleGarderob.com доставляет|Мы доставляем} '.$cat_name_clean; if ($town) { $pattern .= ' в '.$town['delivery_in'].' и другие города России!'; } else { $pattern .= ' во все города России!'; }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
        
        $seed    = 1;
        if ($category) {
            $seed += $category->id;
        }
        if ($brand) {
            $seed += $brand->id;    
        }
        if ($color) {
            $seed += $color['id'];    
        }
        if ($composition) {
            $seed += $composition['id'];    
        }
        if ($season) {
            $seed += $season['id'];    
        }
        if ($page) {
            $seed += $page;    
        }
        $text = Model_Main::text_generator($pattern, $seed);
        
        return trim($text);
    }
    
    public static function get_catalog_index_h1($category, $brand, $color, $composition, $season, $page = 1)
    {
        $cat_name = self::category_name_nominative_form($category, $brand, $color, $composition, $season);
        $town     = self::get_town($page);
        
        $pattern = '';
        if ($category && $category->is_plural_form) { $pattern .= '{Качественные{ и |, }красивые|Недорогие|Качественные|Удобные|Cтильные|Модные|Фирменные|Брендовые|Красивые|Качественные{ и |, }удобные|Качественные{ и |, }стильные|Качественные{ и |, }модные|Качественные{ и |, }фирменные|Качественные{ и |, }брендовые|Качественные{ и |, }недорогие|Удобные{ и |, }качественные|Удобные{ и |, }стильные|Удобные{ и |, }модные|Удобные{ и |, }фирменные|Удобные{ и |, }брендовые|Удобные{ и |, }красивые|Удобные{ и |, }недорогие|Cтильные{ и |, }качественные|Cтильные{ и |, }удобные|Cтильные{ и |, }фирменные|Cтильные{ и |, }брендовые|Cтильные{ и |, }красивые|Cтильные{ и |, }недорогие|Модные{ и |, }качественные|Модные{ и |, }удобные|Модные{ и |, }фирменные|Модные{ и |, }брендовые|Модные{ и |, }красивые|Модные{ и |, }недорогие|Фирменные{ и |, }качественные|Фирменные{ и |, }удобные|Фирменные{ и |, }стильные|Фирменные{ и |, }модные|Фирменные{ и |, }красивые|Фирменные{ и |, }недорогие|Брендовые{ и |, }качественные|Брендовые{ и |, }удобные|Брендовые{ и |, }стильные|Брендовые{ и |, }модные|Брендовые{ и |, }красивые|Брендовые{ и |, }недорогие|Красивые{ и |, }качественные|Красивые{ и |, }удобные|Красивые{ и |, }стильные|Красивые{ и |, }модные|Красивые{ и |, }фирменные|Красивые{ и |, }брендовые|Красивые{ и |, }недорогие|Недорогие{ и |, }качественные|Недорогие{ и |, }удобные|Недорогие{ и |, }стильные|Недорогие{ и |, }модные|Недорогие{ и |, }фирменные|Недорогие{ и |, }брендовые|Недорогие{ и |, }красивые} '; }
        $pattern .= $cat_name;
        
        $seed    = 1;
        if ($category) {
            $seed += $category->id;
        }
        if ($brand) {
            $seed += $brand->id;    
        }
        if ($color) {
            $seed += $color['id'];    
        }
        if ($composition) {
            $seed += $composition['id'];    
        }
        if ($season) {
            $seed += $season['id'];    
        }
        if ($page) {
            $seed += $page;    
        }
        $text = Model_Main::text_generator($pattern, $seed);
        
        return trim($text);    
    }
    
    public static function get_catalog_index_text($category = null, $brand = null, $color = null, $composition = null, $season = null)
    {
        //$pattern = $category->description;
        //if (!$pattern) {
        $pattern = '<p>%Nominative_form% в {самом большом|огромном|большом|самом огромном|широком|самом широком} {ассортименте|количестве}{ только|} {на нашем сайте|у нас|на StyleGarderob.com|на нашем проекте|на нашем сервисе}. {Через наш сервис|У нас|На нашем сайте|На этом сайте|На StyleGarderob.com|На StyleGarderob} вы {сможете купить|сможете приобрести|сможете заказать} %easy_accusative_form% со скидкой, {ведь|потому что|так как} во {многих|всех} {магазинах|интернет-магазинах|магазинах наших партнеров|интернет-магазинах наших партнеров}{, представленных у нас,|} {есть возможность|вы можете} {ввести промокод|активировать купон|ввести купон|активировать купон} при {оформлении заказа|покупке|совершении покупки} и получить скидку.</p>

<p>{У нас собрано|Мы имеем|У нас есть} {большое|огромное} {количество|множество} товаров более 4000 {брендов|производителей}, таких как{ Mango,|}{ Mexx,|}{ Tom Tailor,|}{ Vero Moda,|}{ Galliano,|}{ Just Cavalli,|}{ Ichi,|}{ s.Oliver,|}{ BROADWAY,|}{ Diesel,|}{ mondigo,|}{ INCITY,|} всех возможных цветов -{ белого,|}{ черного,|}{ серого,|}{ синего,|}{ зленого,|} красного и других. Также {вы сожете выбрать|можно выбрать|вы можете обратить внимание на} одежду и обувь из {определенного материала|какого-то материала} - хлопок, шелк, шерсть, кожа и т.д. и на {определенное|нужное|актуальное} время года - {легкую|свободную} {незаметную|прохладную} одежду и обувь на лето или {теплую|жаркую} {согревающую|уютную} на зиму.</p>

<p>Чтобы недорого купить %accusative_form% в интернет-магазине, {кликните|нажмите|щелкните} на {изображение товара|картинку товара|товар}. Вы попадете в один из {магазинов|интернет-магазинов|магазинов наших партнеров|интернет-магазинов наших партнеров}, где сможете {заказать|купить|приобрести} нужные вещи. При {оформлении заказа|создании заказа|заказе} не забудьте {ввести|активировать|применить} {код купона|купон|промокод}, чтобы получить скидку.</p>';     
        //}
        
        $macroses = array(
            'Nominative_form'      => Model_Main::ucfirst_utf8(Helper_Index::category_name_nominative_form($category, $brand, $color, $composition, $season)),
            'nominative_form'      => Helper_Index::category_name_nominative_form($category, $brand, $color, $composition, $season),
            'accusative_form'      => Helper_Index::category_name_accusative_form($category, $brand, $color, $composition, $season),
            'easy_accusative_form' => Helper_Index::category_name_accusative_form($category),   
        );
        $pattern = Model_Main::replace_macroses($pattern, $macroses);
       
        $seed    = 1;
        if ($category) {
            $seed += $category->id;
        }
        if ($brand) {
            $seed += $brand->id;    
        }
        if ($color) {
            $seed += $color['id'];    
        }
        if ($composition) {
            $seed += $composition['id'];    
        }
        if ($season) {
            $seed += $season['id'];    
        }
        $text    = Model_Main::text_generator($pattern, $seed);
        
        return $text;
    } 
    
    public static function get_product_index_title($product, $product_data, $coupon, $shop, $enable_last_part = true)
    {
        $prod_name  = $product->name;
        $prod_price = $product->get_price($coupon, $shop);
        $prod_price = $prod_price['price'];
        
        $_specs = $product->extract_specs($product_data);
        $specs  = array();
        if ($_specs) {
            foreach ($_specs as $name => $value) {
                $value = mb_strtolower(trim($value));
                $name  = mb_strtolower($name);
                $specs[$name] = $value;                         
            }
        }
        
        $color = null;
        if (isset($specs['цвет'])) {
            $color = $specs['цвет'];    
        }
        
        $composition = null;
        if (isset($specs['материал'])) {
            $composition = $specs['материал'];    
        } else if (isset($specs['внешний материал'])) {
            $composition = $specs['внешний материал'];    
        } else if (isset($specs['состав'])) {
            $composition = $specs['состав'];   
        } 
        
        $pattern = $prod_name.' за '.$prod_price.' руб'; if ($color) { $pattern .= ', цвет '.$color; } if ($composition) { $pattern .= ', {состав|материал} '.$composition; }
        if ($enable_last_part) {
            $pattern .= ' - {купить|заказать|приобрести|купить|купить} {в интернет-магазине|в интернет магазине|на сайте|в интернет-магазине|в интернет магазине} StyleGarderob.com';
        }
    
        $seed    = $product->id;
        $text    = Model_Main::text_generator($pattern, $seed);
        
        return $text;
    }   
    
    public static function get_product_index_description($product, $product_data, $coupon, $shop)
    {
        $prod_name  = $product->name;
        $prod_price = $product->get_price($coupon, $shop);
        $prod_price = $prod_price['price'];
        
        $_specs = $product->extract_specs($product_data);
        $specs  = array();
        if ($_specs) {
            foreach ($_specs as $name => $value) {
                $value = mb_strtolower(trim($value));
                $name  = mb_strtolower($name);
                $specs[$name] = $value;                         
            }
        }
        
        $color = null;
        if (isset($specs['цвет'])) {
            $color = $specs['цвет'];    
        }
        
        $composition = null;
        if (isset($specs['материал'])) {
            $composition = $specs['материал'];    
        } else if (isset($specs['внешний материал'])) {
            $composition = $specs['внешний материал'];    
        } else if (isset($specs['состав'])) {
            $composition = $specs['состав'];   
        } 
        
        $pattern = $prod_name.' за '.$prod_price.' руб'; if ($composition) { $pattern .= ', {состав|материал} '.$composition; } if ($color) { $pattern .= ', цвет '.$color; } $pattern .= ', {в интернет-магазине|в интернет магазине|на сайте|в интернет-магазине|в интернет магазине} StyleGarderob.com.';
        if ($product_data['description']) { $pattern .= ' '.$product_data['description']; }
    
        $seed    = $product->id;
        $text    = Model_Main::text_generator($pattern, $seed);
        
        return $text;    
    }
    
    public static function get_product_index_text($product, $category, $coupon, $shop)
    {
        $prod_name  = $product->name;
        $prod_price = $product->get_price($coupon, $shop);
        $prod_price = $prod_price['price'];
        
        $shop = ORM::factory('shop', $product->shop_id);
        $shop_name = $shop->name;
        
        $pattern = $prod_name.' за '.$prod_price.' руб. вы сможете {купить|заказать|приобрести} {в интернет-магазине|в интернет магазине|на сайте|в магазине} '.$shop_name.'. Для этого {щелкните|кликните|нажмите} на кнопку Купить и вы {перейдете|будете перенаправлены} на сайт{ магазина| интернет-магазина| интернет магазина} '.$shop_name.'. Там вы сможете зарегистрироваться{| или выполнить вход},{| выбрать понравившийся товар,} положить товар в корзину и купить его.';
        $pattern .= ' {Также|Кроме этого|Еще|А еще} вы можете {выбрать|посмотреть} другие товары из категории <a href="'.self::catalog_url($category).'">'.self::category_name_nominative_form($category).'</a>';
        if ($product->brand_id) {
            $brand = ORM::factory('brand', $product->brand_id);
            $pattern .= ' или <a href="'.self::catalog_url($category, $brand).'">'.self::category_name_nominative_form($category, $brand).'</a>.';    
        }
    
        $seed    = $product->id;
        $text    = Model_Main::text_generator($pattern, $seed);
        
        return $text;    
    } 
	
	public static function get_town($page = 2)
	{
		$towns = array(
			0 => array(
				'nominative'  => 'Москва',
				'delivery_in' => 'Москву',
				'shop_in'     => 'Москве',
			),
			1 => array(
				'nominative'  => 'Санкт-Петербург',
				'delivery_in' => 'Санкт-Петербург',
				'shop_in'     => 'Санкт-Петербурге',
			),
			2 => array(
				'nominative'  => 'Екатеринбург',
				'delivery_in' => 'Екатеринбург',
				'shop_in'     => 'Екатеринбурге',
			),
			3 => array(
				'nominative'  => 'Нижний Новгород',
				'delivery_in' => 'Нижний Новгород',
				'shop_in'     => 'Нижнем Новгороде',
			),
			4 => array(
				'nominative'  => 'Новосибирск',
				'delivery_in' => 'Новосибирск',
				'shop_in'     => 'Новосибирске',
			),
			5 => array(
				'nominative'  => 'Челябинск',
				'delivery_in' => 'Челябинск',
				'shop_in'     => 'Челябинске',
			),
			6 => array(
				'nominative'  => 'Самара',
				'delivery_in' => 'Самару',
				'shop_in'     => 'Самаре',
			),
			7 => array(
				'nominative'  => 'Уфа',
				'delivery_in' => 'Уфу',
				'shop_in'     => 'Уфе',
			),
			8 => array(
				'nominative'  => 'Омск',
				'delivery_in' => 'Омск',
				'shop_in'     => 'Омске',
			),
			9 => array(
				'nominative'  => 'Иркутск',
				'delivery_in' => 'Иркутск',
				'shop_in'     => 'Иркутске',
			),
			10 => array(
				'nominative'  => 'Воронеж',
				'delivery_in' => 'Воронеж',
				'shop_in'     => 'Воронеже',
			),
			11 => array(
				'nominative'  => 'Барнаул',
				'delivery_in' => 'Барнаул',
				'shop_in'     => 'Барнауле',
			),
			12 => array(
				'nominative'  => 'Пермь',
				'delivery_in' => 'Пермь',
				'shop_in'     => 'Перми',
			),
			13 => array(
				'nominative'  => 'Казань',
				'delivery_in' => 'Казань',
				'shop_in'     => 'Казани',
			),
			14 => array(
				'nominative'  => 'Ростов-на-Дону',
				'delivery_in' => 'Ростов-на-Дону',
				'shop_in'     => 'Ростове-на-Дону',
			),
			15 => array(
				'nominative'  => 'Тюмень',
				'delivery_in' => 'Тюмень',
				'shop_in'     => 'Тюмени',
			),
			16 => array(
				'nominative'  => 'Кемерово',
				'delivery_in' => 'Кемерово',
				'shop_in'     => 'Кемерово',
			),
			17 => array(
				'nominative'  => 'Краснодар',
				'delivery_in' => 'Краснодар',
				'shop_in'     => 'Краснодаре',
			),
			18 => array(
				'nominative'  => 'Волгоград',
				'delivery_in' => 'Волгоград',
				'shop_in'     => 'Волгограде',
			),
			19 => array(
				'nominative'  => 'Владивосток',
				'delivery_in' => 'Владивосток',
				'shop_in'     => 'Владивостоке',
			),
			20 => array(
				'nominative'  => 'Саратов',
				'delivery_in' => 'Саратов',
				'shop_in'     => 'Саратове',
			),
			21 => array(
				'nominative'  => 'Новокузнецк',
				'delivery_in' => 'Новокузнецк',
				'shop_in'     => 'Новокузнецке',
			),
			22 => array(
				'nominative'  => 'Ижевск',
				'delivery_in' => 'Ижевск',
				'shop_in'     => 'Ижевске',
			),
			23 => array(
				'nominative'  => 'Рязань',
				'delivery_in' => 'Рязань',
				'shop_in'     => 'Рязани',
			),
			24 => array(
				'nominative'  => 'Оренбург',
				'delivery_in' => 'Оренбург',
				'shop_in'     => 'Оренбурге',
			),
			25 => array(
				'nominative'  => 'Тула',
				'delivery_in' => 'Тулу',
				'shop_in'     => 'Туле',
			),
			26 => array(
				'nominative'  => 'Ставрополь',
				'delivery_in' => 'Ставрополь',
				'shop_in'     => 'Ставрополе',
			),
			27 => array(
				'nominative'  => 'Ярославль',
				'delivery_in' => 'Ярославль',
				'shop_in'     => 'Ярославле',
			),
			28 => array(
				'nominative'  => 'Киров',
				'delivery_in' => 'Киров',
				'shop_in'     => 'Кирове',
			),
			29 => array(
				'nominative'  => 'Тверь',
				'delivery_in' => 'Тверь',
				'shop_in'     => 'Твери',
			),
			30 => array(
				'nominative'  => 'Томск',
				'delivery_in' => 'Томск',
				'shop_in'     => 'Томске',
			),
			31 => array(
				'nominative'  => 'Пенза',
				'delivery_in' => 'Пензу',
				'shop_in'     => 'Пензе',
			),
			32 => array(
				'nominative'  => 'Владикавказ',
				'delivery_in' => 'Владикавказ',
				'shop_in'     => 'Владикавказе',
			),
			33 => array(
				'nominative'  => 'Ульяновск',
				'delivery_in' => 'Ульяновск',
				'shop_in'     => 'Ульяновске',
			),
			34 => array(
				'nominative'  => 'Липецк',
				'delivery_in' => 'Липецк',
				'shop_in'     => 'Липецке',
			),
			35 => array(
				'nominative'  => 'Королев',
				'delivery_in' => 'Королев',
				'shop_in'     => 'Королеве',
			),
			36 => array(
				'nominative'  => 'Калининград',
				'delivery_in' => 'Калининград',
				'shop_in'     => 'Калининграде',
			),
			37 => array(
				'nominative'  => 'Белгород',
				'delivery_in' => 'Белгород',
				'shop_in'     => 'Белгороде',
			),
			38 => array(
				'nominative'  => 'Набережные Челны',
				'delivery_in' => 'Набережные Челны',
				'shop_in'     => 'Набережных Челнах',
			),
			39 => array(
				'nominative'  => 'Махачкала',
				'delivery_in' => 'Махачкалу',
				'shop_in'     => 'Махачкале',
			),
			40 => array(
				'nominative'  => 'Архангельск',
				'delivery_in' => 'Архангельск',
				'shop_in'     => 'Архангельске',
			),
			41 => array(
				'nominative'  => 'Сургут',
				'delivery_in' => 'Сургут',
				'shop_in'     => 'Сургуте',
			),
			42 => array(
				'nominative'  => 'Мурманск',
				'delivery_in' => 'Мурманск',
				'shop_in'     => 'Мурманске',
			),
			43 => array(
				'nominative'  => 'Брянск',
				'delivery_in' => 'Брянск',
				'shop_in'     => 'Брянске',
			),
			44 => array(
				'nominative'  => 'Тольятти',
				'delivery_in' => 'Тольятти',
				'shop_in'     => 'Тольятти',
			),
			45 => array(
				'nominative'  => 'Петрозаводск',
				'delivery_in' => 'Петрозаводск',
				'shop_in'     => 'Петрозаводске',
			),
			46 => array(
				'nominative'  => 'Иваново',
				'delivery_in' => 'Иваново',
				'shop_in'     => 'Иваново',
			),
			47 => array(
				'nominative'  => 'Калуга',
				'delivery_in' => 'Калугу',
				'shop_in'     => 'Калуге',
			),
			48 => array(
				'nominative'  => 'Тамбов',
				'delivery_in' => 'Тамбов',
				'shop_in'     => 'Тамбове',
			),
			49 => array(
				'nominative'  => 'Владимир',
				'delivery_in' => 'Владимир',
				'shop_in'     => 'Владимире',
			),
			50 => array(
				'nominative'  => 'Смоленск',
				'delivery_in' => 'Смоленск',
				'shop_in'     => 'Смоленске',
			),
			51 => array(
				'nominative'  => 'Курск',
				'delivery_in' => 'Курск',
				'shop_in'     => 'Курске',
			),
			52 => array(
				'nominative'  => 'Абакан',
				'delivery_in' => 'Абакан',
				'shop_in'     => 'Абакане',
			),
			53 => array(
				'nominative'  => 'Орел',
				'delivery_in' => 'Орел',
				'shop_in'     => 'Орле',
			),
			54 => array(
				'nominative'  => 'Коломна',
				'delivery_in' => 'Коломну',
				'shop_in'     => 'Коломне',
			),
			55 => array(
				'nominative'  => 'Архангельск',
				'delivery_in' => 'Архангельск',
				'shop_in'     => 'Архангельске',
			),
			56 => array(
				'nominative'  => 'Пятигорск',
				'delivery_in' => 'Пятигорск',
				'shop_in'     => 'Пятигорске',
			),
			57 => array(
				'nominative'  => 'Кострома',
				'delivery_in' => 'Кострому',
				'shop_in'     => 'Костроме',
			),
			58 => array(
				'nominative'  => 'Сыктывкар',
				'delivery_in' => 'Сыктывкар',
				'shop_in'     => 'Сыктывкаре',
			),
			59 => array(
				'nominative'  => 'Саранск',
				'delivery_in' => 'Саранск',
				'shop_in'     => 'Саранске',
			),
			60 => array(
				'nominative'  => 'Чита',
				'delivery_in' => 'Читу',
				'shop_in'     => 'Чите',
			),
			61 => array(
				'nominative'  => 'Курган',
				'delivery_in' => 'Курган',
				'shop_in'     => 'Кургане',
			),
			62 => array(
				'nominative'  => 'Стерлитамак',
				'delivery_in' => 'Стерлитамак',
				'shop_in'     => 'Стерлитамаке',
			),
			63 => array(
				'nominative'  => 'Благовещенск',
				'delivery_in' => 'Благовещенск',
				'shop_in'     => 'Благовещенске',
			),
			64 => array(
				'nominative'  => 'Ногинск',
				'delivery_in' => 'Ногинск',
				'shop_in'     => 'Ногинске',
			),
			65 => array(
				'nominative'  => 'Магнитогорск',
				'delivery_in' => 'Магнитогорск',
				'shop_in'     => 'Магнитогорске',
			),
			66 => array(
				'nominative'  => 'Новгород',
				'delivery_in' => 'Новгород',
				'shop_in'     => 'Новгороде',
			),
			67 => array(
				'nominative'  => 'Южно-Сахалинск',
				'delivery_in' => 'Южно-Сахалинск',
				'shop_in'     => 'Южно-Сахалинске',
			),
			68 => array(
				'nominative'  => 'Якутск',
				'delivery_in' => 'Якутск',
				'shop_in'     => 'Якутске',
			),
			69 => array(
				'nominative'  => 'Сочи',
				'delivery_in' => 'Сочи',
				'shop_in'     => 'Сочи',
			),
			70 => array(
				'nominative'  => 'Вологда',
				'delivery_in' => 'Вологду',
				'shop_in'     => 'Вологде',
			),
			71 => array(
				'nominative'  => 'Альметьевск',
				'delivery_in' => 'Альметьевск',
				'shop_in'     => 'Альметьевске',
			),
			72 => array(
				'nominative'  => 'Череповец',
				'delivery_in' => 'Череповец',
				'shop_in'     => 'Череповце',
			),
			73 => array(
				'nominative'  => 'Нальчик',
				'delivery_in' => 'Нальчик',
				'shop_in'     => 'Нальчике',
			),
			74 => array(
				'nominative'  => 'Подольск',
				'delivery_in' => 'Подольск',
				'shop_in'     => 'Подольске',
			),
			75 => array(
				'nominative'  => 'Братск',
				'delivery_in' => 'Братск',
				'shop_in'     => 'Братске',
			),
			76 => array(
				'nominative'  => 'Нефтеюганск',
				'delivery_in' => 'Нефтеюганск',
				'shop_in'     => 'Нефтеюганске',
			),
			77 => array(
				'nominative'  => 'Химки',
				'delivery_in' => 'Химки',
				'shop_in'     => 'Химках',
			),
			78 => array(
				'nominative'  => 'Обнинск',
				'delivery_in' => 'Обнинск',
				'shop_in'     => 'Обнинске',
			),
			79 => array(
				'nominative'  => 'Северодвинск',
				'delivery_in' => 'Северодвинск',
				'shop_in'     => 'Северодвинске',
			),
			80 => array(
				'nominative'  => 'Псков',
				'delivery_in' => 'Псков',
				'shop_in'     => 'Пскове',
			),
			81 => array(
				'nominative'  => 'Петропавловск-Камчатский',
				'delivery_in' => 'Петропавловск-Камчатский',
				'shop_in'     => 'Петропавловске-Камчатском',
			),
			82 => array(
				'nominative'  => 'Прокопьевск',
				'delivery_in' => 'Прокопьевск',
				'shop_in'     => 'Прокопьевске',
			),
			83 => array(
				'nominative'  => 'Нижний Тагил',
				'delivery_in' => 'Нижний Тагил',
				'shop_in'     => 'Нижнем Тагиле',
			),
			84 => array(
				'nominative'  => 'Жуковский',
				'delivery_in' => 'Жуковский',
				'shop_in'     => 'Жуковском',
			),
			85 => array(
				'nominative'  => 'Нефтекамск',
				'delivery_in' => 'Нефтекамск',
				'shop_in'     => 'Нефтекамске',
			),
			86 => array(
				'nominative'  => 'Магадан',
				'delivery_in' => 'Магадан',
				'shop_in'     => 'Магадане',
			),
			87 => array(
				'nominative'  => 'Серпухов',
				'delivery_in' => 'Серпухов',
				'shop_in'     => 'Серпухове',
			),
			88 => array(
				'nominative'  => 'Ессентуки',
				'delivery_in' => 'Ессентуки',
				'shop_in'     => 'Ессентуках',
			),
			89 => array(
				'nominative'  => 'Пушкино',
				'delivery_in' => 'Пушкино',
				'shop_in'     => 'Пушкино',
			),
			90 => array(
				'nominative'  => 'Находка',
				'delivery_in' => 'Находку',
				'shop_in'     => 'Находке',
			),
			91 => array(
				'nominative'  => 'Воркута',
				'delivery_in' => 'Воркуту',
				'shop_in'     => 'Воркуте',
			),
			92 => array(
				'nominative'  => 'Уссурийск',
				'delivery_in' => 'Уссурийск',
				'shop_in'     => 'Уссурийске',
			),
			93 => array(
				'nominative'  => 'Орск',
				'delivery_in' => 'Орск',
				'shop_in'     => 'Орске',
			),
			94 => array(
				'nominative'  => 'Сергиев Посад',
				'delivery_in' => 'Сергиев Посад',
				'shop_in'     => 'Сергиев Посаде',
			),
			95 => array(
				'nominative'  => 'Таганрог',
				'delivery_in' => 'Таганрог',
				'shop_in'     => 'Таганроге',
			),
			96 => array(
				'nominative'  => 'Новороссийск',
				'delivery_in' => 'Новороссийск',
				'shop_in'     => 'Новороссийске',
			),
			97 => array(
				'nominative'  => 'Салехард',
				'delivery_in' => 'Салехард',
				'shop_in'     => 'Салехарде',
			),
			98 => array(
				'nominative'  => 'Междуреченск',
				'delivery_in' => 'Междуреченск',
				'shop_in'     => 'Междуреченске',
			),
			99 => array(
				'nominative'  => 'Назрань',
				'delivery_in' => 'Назрань',
				'shop_in'     => 'Назрани',
			),
			100 => array(
				'nominative'  => 'Дубна',
				'delivery_in' => 'Дубну',
				'shop_in'     => 'Дубне',
			),
			101 => array(
				'nominative'  => 'Апатиты',
				'delivery_in' => 'Апатиты',
				'shop_in'     => 'Апатитах',
			),
			102 => array(
				'nominative'  => 'Волгодонск',
				'delivery_in' => 'Волгодонск',
				'shop_in'     => 'Волгодонске',
			),
			103 => array(
				'nominative'  => 'Муром',
				'delivery_in' => 'Муром',
				'shop_in'     => 'Муроме',
			),
			104 => array(
				'nominative'  => 'Великие Луки',
				'delivery_in' => 'Великие Луки',
				'shop_in'     => 'Великих Луках',
			),
			105 => array(
				'nominative'  => 'Железногорск',
				'delivery_in' => 'Железногорск',
				'shop_in'     => 'Железногорске',
			),
			106 => array(
				'nominative'  => 'Каменск-Уральский',
				'delivery_in' => 'Каменск-Уральский',
				'shop_in'     => 'Каменске-Уральском',
			),
			107 => array(
				'nominative'  => 'Балаково',
				'delivery_in' => 'Балаково',
				'shop_in'     => 'Балаково',
			),
			108 => array(
				'nominative'  => 'Ковров',
				'delivery_in' => 'Ковров',
				'shop_in'     => 'Коврове',
			),
			109 => array(
				'nominative'  => 'Ханты-Мансийск',
				'delivery_in' => 'Ханты-Мансийск',
				'shop_in'     => 'Ханты-Мансийске',
			),
			110 => array(
				'nominative'  => 'Майкоп',
				'delivery_in' => 'Майкоп',
				'shop_in'     => 'Майкопе',
			),
			111 => array(
				'nominative'  => 'Элиста',
				'delivery_in' => 'Элиста',
				'shop_in'     => 'Элисте',
			),
			112 => array(
				'nominative'  => 'Арзамас',
				'delivery_in' => 'Арзамас',
				'shop_in'     => 'Арзамасе',
			),
			113 => array(
				'nominative'  => 'Димитровград',
				'delivery_in' => 'Димитровград',
				'shop_in'     => 'Димитровграде',
			),
			114 => array(
				'nominative'  => 'Электросталь',
				'delivery_in' => 'Электросталь',
				'shop_in'     => 'Электростали',
			),
			115 => array(
				'nominative'  => 'Балашиха',
				'delivery_in' => 'Балашиха',
				'shop_in'     => 'Балашихе',
			),
			116 => array(
				'nominative'  => 'Красноуральск',
				'delivery_in' => 'Красноуральск',
				'shop_in'     => 'Красноуральске',
			),
			117 => array(
				'nominative'  => 'Одинцово',
				'delivery_in' => 'Одинцово',
				'shop_in'     => 'Одинцово',
			),
			118 => array(
				'nominative'  => 'Новочеркасск',
				'delivery_in' => 'Новочеркасск',
				'shop_in'     => 'Новочеркасске',
			),
			119 => array(
				'nominative'  => 'Сызрань',
				'delivery_in' => 'Сызрань',
				'shop_in'     => 'Сызрани',
			),
			120 => array(
				'nominative'  => 'Энгельс',
				'delivery_in' => 'Энгельс',
				'shop_in'     => 'Энгельсе',
			),
			121 => array(
				'nominative'  => 'Витебск',
				'delivery_in' => 'Витебск',
				'shop_in'     => 'Витебске',
			),
			122 => array(
				'nominative'  => 'Анадырь',
				'delivery_in' => 'Анадырь',
				'shop_in'     => 'Анадыре',
			),
			123 => array(
				'nominative'  => 'Лобня',
				'delivery_in' => 'Лобню',
				'shop_in'     => 'Лобне',
			),
			124 => array(
				'nominative'  => 'Дзержинск',
				'delivery_in' => 'Дзержинск',
				'shop_in'     => 'Дзержинске',
			),
			125 => array(
				'nominative'  => 'Геленджик',
				'delivery_in' => 'Геленджик',
				'shop_in'     => 'Геленджике',
			),
		);
        
        $page = $page - 2;
        if (isset($towns[$page])) {
            return $towns[$page];
        }
        return null;
	}
    
} 
